package com.stylefeng.guns.common.persistence.model;

import java.io.Serializable;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.enums.IdType;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.stylefeng.guns.common.annotion.EmpCode;
import com.stylefeng.guns.common.annotion.Point;
import com.stylefeng.guns.common.annotion.PointType;
import com.stylefeng.guns.common.annotion.Year;
import com.stylefeng.guns.common.constant.PointConstType;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author rockjh
 * @since 2018-01-27
 */
@PointType(PointConstType.projectAuthenPoints)
@TableName("project_authen_points")
public class ProjectAuthenPoints extends Model<ProjectAuthenPoints> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
	@TableId(value="id", type= IdType.UUID)
	private String id;
	/**
	 * 年度
	 */
	@TableField("year")
	@Excel(name = "年度",width = 20)
	@Year
	private String year;
    /**
     * 员工编号
     */
	@EmpCode
	@TableField("emp_code")
	@Excel(name = "员工编号",width = 20)
	private String empCode;
    /**
     * 员工姓名
     */
	@TableField("emp_name")
	@Excel(name = "员工姓名",width = 20)
	private String empName;
    /**
     * 承担授课级别
     */
	@TableField("teach_level")
	@Excel(name = "承担授课级别",width = 20)
	private String teachLevel;
    /**
     * 承担授课级别编码
     */
	@TableField("teach_level_code")
	private String teachLevelCode;
    /**
     * 开始日期
     */
	@TableField("start_date")
	@Excel(name = "开始日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd",width = 20)
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date startDate;

	@TableField(exist=false)
	private String strStartDate;
    /**
     * 结束日期
     */
	@TableField("end_date")
	@Excel(name = "结束日期", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd",width = 20)
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date endDate;

	@TableField(exist=false)
	private String strEndDate;
    /**
     * 累积学时
     */
	@Excel(name = "累计学时",width = 20)
	@TableField("head_school_hour")
	private String headSchoolHour;
    /**
     * 积分
     */
	@Point
	@Excel(name = "积分",width = 15)
	private Double integral;
    /**
     * 创建日期
     */
	@TableField("create_date")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date createDate;
    /**
     * 数据来源
     */
	@TableField("data_origin")
	private String dataOrigin;


	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	public String getEmpCode() {
		return empCode;
	}

	public void setEmpCode(String empCode) {
		this.empCode = empCode;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public String getTeachLevel() {
		return teachLevel;
	}

	public void setTeachLevel(String teachLevel) {
		this.teachLevel = teachLevel;
	}

	public String getTeachLevelCode() {
		return teachLevelCode;
	}

	public void setTeachLevelCode(String teachLevelCode) {
		this.teachLevelCode = teachLevelCode;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public String getHeadSchoolHour() {
		return headSchoolHour;
	}

	public void setHeadSchoolHour(String headSchoolHour) {
		this.headSchoolHour = headSchoolHour;
	}

	public Double getIntegral() {
		return integral;
	}

	public void setIntegral(Double integral) {
		this.integral = integral;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public String getDataOrigin() {
		return dataOrigin;
	}

	public void setDataOrigin(String dataOrigin) {
		this.dataOrigin = dataOrigin;
	}

	public String getStrStartDate() {
		return strStartDate;
	}

	public void setStrStartDate(String strStartDate) {
		this.strStartDate = strStartDate;
	}

	public String getStrEndDate() {
		return strEndDate;
	}

	public void setStrEndDate(String strEndDate) {
		this.strEndDate = strEndDate;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}

	@Override
	public String toString() {
		return "ProjectAuthenPoints{" +
			"id=" + id +
			", year=" + year +
			", empCode=" + empCode +
			", empName=" + empName +
			", teachLevel=" + teachLevel +
			", teachLevelCode=" + teachLevelCode +
			", startDate=" + startDate +
			", endDate=" + endDate +
			", headSchoolHour=" + headSchoolHour +
			", integral=" + integral +
			", createDate=" + createDate +
			", dataOrigin=" + dataOrigin +
			"}";
	}
}
